package leetcode_81_100;

import utils.ListNode;

public class deleteDuplicates_82 {
    /**
     * 给定一个已排序的链表的头 head ， 删除原始链表中是重复数字的节点，只留下剩下不同的数字 。
     * 返回 已排序的链表 。
     * @param head
     * @return
     */
    public ListNode deleteDuplicates(ListNode head) {
        ListNode result=new ListNode();
        ListNode root= result;
        if(  head==null || head.next==null)
            return head;
        while(head!=null){
            boolean flag=false;
            while (head.next!=null&&head.val==head.next.val){  //将重复的元素都跳过
                head=head.next;
                flag=true;
            }
            if(flag) //如果是重复元素，还需要跳过它自己
                head=head.next;
            else {
                root.next = head;
                root = root.next;
                head = head.next;
            }
        }
        root.next=null;      //去掉可能存在的赘余
        return result.next;
    }
}
